package 简单算法;

import java.util.ArrayList;
import java.util.List;

/**
 * @Author: 胡成
 * @Version: 0.0.1V
 * @Date: 2019-05-16
 * @Description: 给定一个列表，该列表中的每个元素要么是个列表，
 * 要么是整数。将其变成一个只包含整数的简单列表。
 **/
public class 平面列表 {

    public static void main(String[] args) {
        平面列表 s = new 平面列表();
        System.out.println(s.flatten(new ArrayList<>()));
    }

    public List<Integer> flatten(List<NestedInteger> nestedList) {
        List<Integer> results = new ArrayList<>();
        for (NestedInteger nestedInteger : nestedList) {
            if(nestedInteger.isInteger()){
                results.add(nestedInteger.getInteger());
            }else{
                results.addAll(flatten(nestedInteger.getList()));
            }
        }
        return results;
    }
}

interface NestedInteger {
    boolean isInteger();

    Integer getInteger();

    List<NestedInteger> getList();
}
